07 基于原型的编程范式
基于原型(Prototype)的编程其实也是面向对象编程的一种方式。没有 class 化的,直接使用对象。又叫基于实例的编程。
JavaScript 的原型概念
JavaScript 基于原型编程,不要 Class,直接在对象上改,基于编程的修改,直接对类型进行修改。
var foo = {name: "foo", one: 1, two: 2};
var bar = {three: 3};
每个对象都有一个 proto 的属性,这个就是原型。
bar.__proto__ = foo; // foo is now the prototype of bar.
在 bar 里面访问 foo 的属性
// If we try to access foo's properties from bar
// from now on, we'll succeed.
bar.one // Resolves to 1.
// The child object's properties are also accessible.
bar.three // Resolves to 3.
// Own properties shadow prototype properties
bar.name = "bar";
foo.name; // unaffected, resolves to "foo"
bar.name; // Resolves to "bar"
- proto :安放在实际的对象中,用它来产生原型链, 用于寻找方法名或属性等。
- prototype :用 new 来创建一个对象时构造 proto 用的,是构造函数的一个属性。